|
RAIS
3.2
|
00001 00028 using System; 00029 using System.Collections; 00030 using System.Collections.Generic; 00031 using System.Configuration; 00032 using System.Data; 00033 using System.Linq; 00034 using System.Text; 00035 using System.Web; 00036 using System.Web.Security; 00037 using System.Web.UI; 00038 using System.Web.UI.HtmlControls; 00039 using System.Web.UI.WebControls; 00040 using System.Web.UI.WebControls.WebParts; 00041 using System.Xml.Linq; 00042 00043 using RAIS.Common.UserManagement; 00044 using RAIS.UI.Common; 00045 00046 using Queries = System.Collections.Generic.Dictionary<string, RAIS.Common.TableManagement.Query>; 00047 00048 namespace RAIS.UI.SpecificMasks 00049 { 00053 public partial class CustomQuery_New : System.Web.UI.Page 00054 { 00055 //********************************************************************* 00056 #region Enums 00057 00060 enum CustomQuery_PageMode 00061 { 00062 view, 00063 add, 00064 edit 00065 }; 00066 #endregion Enums 00067 //********************************************************************* 00068 #region Properties 00069 00072 protected UserData CurrentUser 00073 { 00074 get { return (UserData)this.Session[UI.Common.Constants.CURRENT_USER_TAG]; } 00075 } 00079 CustomQuery_PageMode CurrentCustomQuery_PageMode 00080 { 00081 get 00082 { 00083 if (this.Session[UI.Common.Constants.CUSTOM_QUERIES_EDIT_MODE_TAG] != null) 00084 { 00085 return (CustomQuery_PageMode)this.Session[UI.Common.Constants.CUSTOM_QUERIES_EDIT_MODE_TAG]; 00086 } 00087 else 00088 return CustomQuery_PageMode.view; 00089 } 00090 set 00091 { 00092 this.Session[UI.Common.Constants.CUSTOM_QUERIES_EDIT_MODE_TAG] = value; 00093 this.SetControlsProperties(); 00094 } 00095 } 00099 bool EditMode 00100 { 00101 get 00102 { 00103 return this.CurrentCustomQuery_PageMode == CustomQuery_PageMode.edit 00104 || this.CurrentCustomQuery_PageMode == CustomQuery_PageMode.add; 00105 } 00106 } 00110 private RAIS.Common.TableManagement.Query SelectedQuery 00111 { 00112 get 00113 { 00114 Queries queries = (Queries)this.Session[RAIS.UI.Common.Constants.QUERIES_TAG]; 00115 if (queries != null && queries.ContainsKey(this.LBqueries.SelectedValue)) 00116 return queries[this.LBqueries.SelectedValue]; 00117 else 00118 return null; 00119 } 00120 } 00124 private string SavedQuerySelection 00125 { 00126 get 00127 { 00128 if (this.Session[RAIS.UI.Common.Constants.QUERY_SAVED_SELECTION_TAG] != null) 00129 return this.Session[RAIS.UI.Common.Constants.QUERY_SAVED_SELECTION_TAG].ToString(); 00130 else 00131 return string.Empty; 00132 } 00133 set 00134 { 00135 this.Session[RAIS.UI.Common.Constants.QUERY_SAVED_SELECTION_TAG] = value; 00136 } 00137 } 00138 #endregion 00139 //********************************************************************* 00140 #region Event handlers 00141 protected void Page_PreLoad(object sender, EventArgs e) 00142 { 00143 RAIS.UI.Common.PageManagement.TrimTextBoxValues(this); 00144 } 00151 protected void Page_Load(object sender, EventArgs e) 00152 { 00153 this.Response.Cache.SetNoStore(); 00154 if (this.CurrentUser == null) 00155 UI.Common.AccessManagement.SignOut(this); 00156 this.LBLresult.Text = string.Empty; 00157 00158 if (!this.IsPostBack) 00159 { 00160 this.BTNdelete.Attributes.Add("onclick", string.Format("javascript: return confirm('{0}');", RAIS.Common.Messages.DELETE_QUESTION_CUSTOM_QUERY.Replace("'", "\\'"))); 00161 this.LBLusernameNoTranslation.Text = this.CurrentUser.Name; 00162 string translatedMessage = RAIS.ApplicationLogicLayer.Localisation.Translate(RAIS.Common.Messages.FIELD_IS_MANDATORY, 00163 RAIS.Common.Messages.TRANSLATION_CONTEXT, 00164 RAIS.Common.Constants.DEFAULT_LANGUAGE, 00165 this.CurrentUser.Language); 00166 this.RFVqueryName.ErrorMessage = translatedMessage; 00167 this.RFVqueryText.ErrorMessage = translatedMessage; 00168 this.LBLadmin.ForeColor = RAIS.UI.Common.Constants.COLOR_OF_MENU_BAR_TEXT_HIGHLIGHT; 00169 00170 UI.Common.TableManagement.InitializeCustomQueryListBox(this.LBqueries, this.SavedQuerySelection); 00171 00172 UI.Common.TableManagement.InitializeQueryTypeList(this.DDLqueryType); 00173 this.CurrentCustomQuery_PageMode = CustomQuery_PageMode.view; 00174 this.ShowQuery(); 00175 00176 UI.Common.PageManagement.InitializePage(this, this.TreeView1); 00177 // this.LBTNmessagebox.Visible = !(this.CurrentUser.FunctionalRole.Type == FunctionRole.FunctionRoleType.Guest); 00178 } 00179 PageManagement.InitHelpMainMenu(LBTNdefault); 00180 } 00186 protected void Page_Init(object sender, EventArgs e) 00187 { 00188 PageManagement.SetScrolableListBox(this.LBqueries, this, true);//.Focus(); 00189 } 00196 protected void LBqueries_SelectedIndexChanged(object sender, EventArgs e) 00197 { 00198 this.SetControlsProperties(); 00199 this.ShowQuery(); 00200 } 00207 protected void LNKqueryParameters_Click(object sender, EventArgs e) 00208 { 00209 this.SavedQuerySelection = this.LBqueries.SelectedValue; 00210 this.Response.Redirect("~/CustomQueryParameters.aspx"); 00211 } 00218 protected void LNKraisCustomization_Click(object sender, EventArgs e) 00219 { 00220 this.SavedQuerySelection = this.LBqueries.SelectedValue; 00221 this.Response.Redirect("~/CustomQueryRaisCustomization.aspx"); 00222 } 00229 protected void BTNadd_Click(object sender, EventArgs e) 00230 { 00231 this.CurrentCustomQuery_PageMode = CustomQuery_PageMode.add; 00232 this.LBqueries.Items.Add(new ListItem(string.Empty)); 00233 this.LBqueries.SelectedIndex = LBqueries.Items.Count - 1; 00234 this.ShowQuery(); 00235 } 00242 protected void BTNedit_Click(object sender, EventArgs e) 00243 { 00244 bool success = false; 00245 string returnMessage = string.Empty; 00246 00247 RAIS.Common.TableManagement.Query query = this.SelectedQuery; 00248 00249 success = UI.Common.TableManagement.CheckQueryAssignedObjects(query, ref returnMessage); 00250 if (success) 00251 { 00252 this.CurrentCustomQuery_PageMode = CustomQuery_PageMode.edit; 00253 } 00254 else 00255 { 00256 RAIS.UI.Common.MessageDisplay.DisplayReturnMessage(this.LBLresult, 00257 returnMessage, 00258 success); 00259 } 00260 } 00267 protected void BTNdelete_Click(object sender, EventArgs e) 00268 { 00269 bool success = false; 00270 string returnMessage = string.Empty; 00271 00272 RAIS.Common.TableManagement.Query query = this.SelectedQuery; 00273 00274 success = UI.Common.TableManagement.CheckQueryAssignedObjects(query, ref returnMessage); 00275 if (success) 00276 { 00277 success = RAIS.ApplicationLogicLayer.TableManagement.RemoveQuery(query, ref returnMessage); 00278 if (success) 00279 { 00280 this.CurrentCustomQuery_PageMode = CustomQuery_PageMode.view; 00281 this.Session[RAIS.UI.Common.Constants.QUERIES_TAG] = null; 00282 string newSelection = (this.LBqueries.SelectedIndex == 0) 00283 ? string.Empty 00284 : this.LBqueries.Items[this.LBqueries.SelectedIndex - 1].Value; 00285 UI.Common.TableManagement.InitializeCustomQueryListBox(this.LBqueries, newSelection); 00286 this.ShowQuery(); 00287 } 00288 } 00289 00290 RAIS.UI.Common.MessageDisplay.DisplayReturnMessage(this.LBLresult, 00291 returnMessage, 00292 success); 00293 } 00300 protected void BTNcreateQuery_Click(object sender, EventArgs e) 00301 { 00302 bool success = false; 00303 string returnMessage = string.Empty; 00304 00305 RAIS.Common.TableManagement.Query query = GetQueryFromControls(); 00306 00307 success = UI.Common.TableManagement.CheckQueryAssignedObjects(query, ref returnMessage); 00308 if (success) 00309 { 00310 // Validate Query Parameters 00311 success = RAIS.ApplicationLogicLayer.TableManagement.ValidateQueryParameters(query, ref returnMessage); 00312 if (success) 00313 { 00314 // Create query 00315 success = RAIS.ApplicationLogicLayer.TableManagement.CreateQuery(query, ref returnMessage); 00316 if (this.SelectedQuery.Type == RAIS.Common.TableManagement.Query.QueryType.DataRoleRestriction) 00317 { 00318 // Validate data role restriction query 00319 success = RAIS.ApplicationLogicLayer.DataRoleRestrictionManagement.CheckQuery(query, ref returnMessage); 00320 } 00321 } 00322 if (success) 00323 this.ShowQuery(); 00324 } 00325 RAIS.UI.Common.MessageDisplay.DisplayReturnMessage(this.LBLresult, 00326 returnMessage, 00327 success); 00328 } 00335 protected void BTNdiscard_Click(object sender, EventArgs e) 00336 { 00337 if (this.CurrentCustomQuery_PageMode == CustomQuery_PageMode.add) 00338 { 00339 this.LBqueries.Items.Remove(this.LBqueries.SelectedItem); 00340 if (this.LBqueries.Items.Count != 0) 00341 this.LBqueries.SelectedIndex = LBqueries.Items.Count - 1; 00342 } 00343 this.CurrentCustomQuery_PageMode = CustomQuery_PageMode.view; 00344 this.ShowQuery(); 00345 } 00352 protected void BTNapply_Click(object sender, EventArgs e) 00353 { 00354 bool success = true; 00355 string returnMessage = string.Empty; 00356 00357 // Get query properties from controls values 00358 RAIS.Common.TableManagement.Query query = GetQueryFromControls(); 00359 00360 // Add new or save existing query 00361 if (this.CurrentCustomQuery_PageMode == CustomQuery_PageMode.add) 00362 { 00363 success = RAIS.ApplicationLogicLayer.TableManagement.AddQuery(query, ref returnMessage); 00364 } 00365 else 00366 { 00367 if (query.Compiled && query.ParametersChanged) 00368 { 00369 success = UI.Common.TableManagement.CheckQueryAssignedObjects(query, ref returnMessage); 00370 if (!success) 00371 returnMessage = "You are trying to change query parameters. " + returnMessage; 00372 } 00373 00374 if (success) 00375 success = RAIS.ApplicationLogicLayer.TableManagement.SaveQuery(query, ref returnMessage); 00376 } 00377 00378 if (success) 00379 { 00380 /* 00381 if ((this.CurrentCustomQuery_PageMode == CustomQuery_PageMode.add) && (query.NewParameterNames.Count == 0) 00382 || (this.CurrentCustomQuery_PageMode == CustomQuery_PageMode.edit) && !query.ParametersChanged && query.Compiled) 00383 { 00384 // Create query 00385 string createMessage = string.Empty; 00386 success = RAIS.ApplicationLogicLayer.TableManagement.CreateQuery(query, ref createMessage); 00387 00388 if (success) 00389 returnMessage += " and " + createMessage; 00390 else 00391 returnMessage = createMessage; 00392 } 00393 else 00394 { 00395 returnMessage += RAIS.Common.Messages.QUERY_ENTER_PARAMETERS; 00396 } 00397 */ 00398 if (query.NewParameterNames.Count == 0) 00399 { 00400 returnMessage += RAIS.Common.Messages.QUERY_COMPILE_QUERY; 00401 } 00402 else 00403 { 00404 returnMessage += RAIS.Common.Messages.QUERY_ENTER_PARAMETERS; 00405 } 00406 00407 if (success) 00408 { 00409 // Set form into view mode 00410 this.CurrentCustomQuery_PageMode = CustomQuery_PageMode.view; 00411 this.Session[RAIS.UI.Common.Constants.QUERIES_TAG] = null; 00412 UI.Common.TableManagement.InitializeCustomQueryListBox(this.LBqueries, query.Name); 00413 this.ShowQuery(); 00414 this.SetControlsProperties(); 00415 } 00416 } 00417 00418 RAIS.UI.Common.MessageDisplay.DisplayReturnMessage(this.LBLresult, 00419 returnMessage, 00420 success); 00421 } 00428 protected void BTNcheckQuery_Click(object sender, EventArgs e) 00429 { 00430 bool success = false; 00431 string returnMessage = string.Empty; 00432 00433 RAIS.Common.TableManagement.Query query = GetQueryFromControls(); 00434 success = RAIS.ApplicationLogicLayer.TableManagement.CheckQuery(query, ref returnMessage); 00435 RAIS.UI.Common.MessageDisplay.DisplayReturnMessage(this.LBLresult, 00436 returnMessage, 00437 success); 00438 } 00445 protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e) 00446 { 00447 UI.Common.UserManagement.ProcessTreeViewOnRedirect(this.TreeView1); 00448 } 00455 protected void LBTNlogout_Click(object sender, EventArgs e) 00456 { 00457 UI.Common.AccessManagement.SignOut(this); 00458 } 00459 #endregion 00460 //********************************************************************* 00461 #region Private helper methods 00462 00465 private void SetControlsProperties() 00466 { 00467 this.LNKqueryParameters.Enabled = !this.EditMode; 00468 this.LBqueries.Enabled = !this.EditMode; 00469 00470 //this.PNLqueryControls.Enabled = this.EditMode; 00471 this.TXTqueryName.Enabled = this.EditMode; 00472 this.DDLqueryType.Enabled = this.EditMode; 00473 this.TXTqueryText.Enabled = true; 00474 this.TXTqueryText.ReadOnly = !this.EditMode; 00475 foreach (Control control in this.PNLqueryControls.Controls) 00476 if (control is BaseValidator) 00477 ((BaseValidator)control).Enabled = this.EditMode; 00478 00479 this.BTNadd.Enabled = !this.EditMode; 00480 this.BTNedit.Enabled = !this.EditMode && this.SelectedQuery != null; 00481 this.BTNdelete.Enabled = !this.EditMode && this.SelectedQuery != null; 00482 this.BTNcreateQuery.Enabled = !this.EditMode && this.SelectedQuery != null; 00483 this.BTNcheckQuery.Enabled = this.EditMode; 00484 this.BTNapply.Enabled = this.EditMode; 00485 this.BTNdiscard.Enabled = this.EditMode; 00486 00487 if (this.EditMode) 00488 this.SetFocus(this.TXTqueryName); 00489 else 00490 this.SetFocus(this.LBqueries); 00491 00492 UI.Common.UserManagement.EnableCommonControls(this, this.CurrentCustomQuery_PageMode == CustomQuery_PageMode.view); 00493 00494 if (this.SelectedQuery != null && this.SelectedQuery.Type == RAIS.Common.TableManagement.Query.QueryType.DataRoleRestriction) 00495 this.LNKqueryParameters.Enabled = false; 00496 } 00500 private void ShowQuery() 00501 { 00502 if (this.SelectedQuery == null) 00503 { 00504 this.TXTqueryName.Text = string.Empty; 00505 this.TXTqueryText.Text = string.Empty; 00506 this.CBcompiled.Checked = false; 00507 } 00508 else 00509 { 00510 this.TXTqueryName.Text = this.SelectedQuery.Name; 00511 this.TXTqueryText.Text = this.SelectedQuery.QueryText; 00512 this.DDLqueryType.SelectedValue = this.SelectedQuery.TypeText; 00513 this.CBcompiled.Checked = this.SelectedQuery.Compiled; 00514 } 00515 } 00519 private RAIS.Common.TableManagement.Query GetQueryFromControls() 00520 { 00521 RAIS.Common.TableManagement.Query query = null; 00522 00523 if (this.SelectedQuery == null) 00524 { 00525 query = new RAIS.Common.TableManagement.Query(); 00526 } 00527 else 00528 { 00529 query = this.SelectedQuery; 00530 } 00531 query.Name = this.TXTqueryName.Text; 00532 query.QueryText = this.TXTqueryText.Text; 00533 query.TypeText = this.DDLqueryType.SelectedValue; 00534 00535 return query; 00536 } 00537 #endregion 00538 } 00539 }